স্প্রিং বুটে ORM (Object Relational Mapping) ব্যবহার করার সময় JPA অ্যানোটেশনগুলো জাভা ক্লাস এবং ডাটাবেস টেবিলের মধ্যে ম্যাপিং নিশ্চিত করে। নিচে @Entity, @Table, @Id এবং @Column অ্যানোটেশনের ব্যবহার এবং তাদের কার্যকারিতা বিস্তারিতভাবে দেখানো হলো।
@Entity অ্যানোটেশন
- @Entity অ্যানোটেশনটি একটি জাভা ক্লাসকে JPA এ একটি ডাটাবেস টেবিলের প্রতিনিধিত্ব করতে নির্দেশ করে।
- এটি একটি
Persistence Entityহিসেবে কাজ করে।
উদাহরণ:
import jakarta.persistence.Entity;
@Entity
public class Employee {
private Long id;
private String name;
private String department;
}
@Table অ্যানোটেশন
- @Table অ্যানোটেশনটি @Entity অ্যানোটেশনের সঙ্গে ব্যবহার করা হয় এবং ডাটাবেস টেবিলের নাম স্পেসিফাই করে।
- এটি ঐচ্ছিক, এবং যদি না দেওয়া হয়, JPA ক্লাসের নামকেই টেবিল নাম হিসেবে ধরে।
উদাহরণ:
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
@Entity
@Table(name = "employees") // টেবিলের নাম স্পেসিফাই করা
public class Employee {
private Long id;
private String name;
private String department;
}
@Id অ্যানোটেশন
- @Id অ্যানোটেশনটি একটি ফিল্ডকে টেবিলের প্রাইমারি কী (Primary Key) হিসেবে চিহ্নিত করে।
- এটি প্রতিটি টেবিলে আবশ্যক।
উদাহরণ:
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
@Entity
public class Employee {
@Id
private Long id;
private String name;
private String department;
}
@Column অ্যানোটেশন
- @Column অ্যানোটেশনটি একটি ফিল্ডকে ডাটাবেসের কলামের সঙ্গে ম্যাপ করে।
- এটি ঐচ্ছিক, এবং না দিলে ডিফল্টভাবে ফিল্ডের নামকে কলামের নাম হিসেবে ধরে।
- @Column ব্যবহার করে কলামের নাম, দৈর্ঘ্য (length), nullability ইত্যাদি নির্ধারণ করা যায়।
উদাহরণ:
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
@Entity
public class Employee {
@Id
private Long id;
@Column(name = "employee_name", length = 100, nullable = false)
private String name;
@Column(name = "employee_department")
private String department;
}
সম্পূর্ণ উদাহরণ
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import jakarta.persistence.Id;
import jakarta.persistence.Column;
@Entity
@Table(name = "employees")
public class Employee {
@Id
private Long id;
@Column(name = "employee_name", length = 100, nullable = false)
private String name;
@Column(name = "employee_department")
private String department;
// Getter এবং Setter
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
}
ব্যাখ্যা
- @Entity:
Employeeক্লাসটিকে JPA Entity হিসেবে চিহ্নিত করে। - @Table: এই ক্লাসটি ডাটাবেসের
employeesটেবিলের প্রতিনিধিত্ব করে। - @Id:
idফিল্ডটি প্রাইমারি কী হিসেবে ব্যবহৃত। - @Column:
nameএবংdepartmentফিল্ডগুলোকে ডাটাবেসের নির্দিষ্ট কলামের সঙ্গে ম্যাপ করা হয়েছে।
সারাংশ
স্প্রিং বুট ORM-এ @Entity, @Table, @Id এবং @Column অ্যানোটেশন ডাটাবেস টেবিল এবং জাভা অবজেক্টের মধ্যে ম্যাপিং সহজ করে। এগুলোর মাধ্যমে ডাটাবেস অপারেশনগুলো আরও সহজ এবং স্বয়ংক্রিয় হয়ে যায়।
Content added By
Read more